package com.qys.erp.mapper;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.qys.erp.domain.Delivery;
import com.qys.erp.domain.DeliveryLog;
import com.qys.erp.domain.Product;
import org.apache.ibatis.annotations.Param;

/**
 * 产品出库Mapper接口
 * 
 * @author qys
 * @date 2021-08-22
 */
public interface DeliveryMapper 
{
    /**
     * 查询产品出库
     * 
     * @param delId 产品出库ID
     * @return 产品出库
     */
    //public Delivery outselectDeliveryById(Long delId);

    /**
     * 查询产品入库
     *
     * @param delId 产品入库ID
     * @return 产品入库
     */
    public Delivery selectDeliveryById(Long delId);


    /**
     * 查询产品入库列表
     *
     * @param delivery 产品入库
     * @return 产品入库集合
     */
    public List<Delivery> selectDeliveryList(Delivery delivery);

    /**
     * 查询产品出库列表
     *
     * @param delivery 产品入库
     * @return 产品入库集合
     */
    public List<Delivery> outselectDeliveryList(Delivery delivery);

    /**
     * 新增产品出库
     * 
     * @param delivery 产品出库
     * @return 结果
     */
    public int insertDelivery(Delivery delivery);

    /**
     * 修改产品出库
     * 
     * @param delivery 产品出库
     * @return 结果
     */
    public int updateDelivery(Delivery delivery);

    /**
     * 删除产品出库
     * 
     * @param delId 产品出库ID
     * @return 结果
     */
    public int deleteDeliveryById(Long delId);

    /**
     * 批量删除产品出库
     * 
     * @param delIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteDeliveryByIds(Long[] delIds);

    /**
     * 批量删除出库记录
     * 
     * @param customerIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteDeliveryLogByDelIds(Long[] delIds);
    
    /**
     * 批量新增出库记录
     * 
     * @param deliveryLogList 出库记录列表
     * @return 结果
     */
    public int batchDeliveryLog(List<DeliveryLog> deliveryLogList);
    

    /**
     * 通过产品出库ID删除出库记录信息
     * 
     * @param delId 产品出库ID
     * @return 结果
     */
    public int deleteDeliveryLogByDelId(Long delId);

    /**
     * 批量新增产品数量
     *
     * @param list</> 产品列表
     * @return 结果
     */
    public int batchProduct(@Param("list")List<Map<String,Object>> list);
}
